package cn.zhouchao.user.dto;

import cn.zhouchao.basic.util.MD5Utils;
import cn.zhouchao.basic.util.StrUtils;
import cn.zhouchao.user.domain.User;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.Date;

/**
 * 手机注册参数
 */
@Data
public class RegisterPhoneDto {

    @NotBlank(message = "手机号不能为空")
    private String phone; // 验证手机号

    @NotBlank(message = "手机验证码不能为空")
    private String smsCode; // 验证手机验证码

    @NotBlank(message = "一次密码不能为空")
    private String password; // 验证密码一次密码

    @NotBlank(message = "二次密码不能为空")
    private String passwordRepeat; // 验证二次密码

    /**
     * 获取都不为空正确的字段值，并添加给user对象
     * @return
     */
    public User getUser(){
        String salt = StrUtils.getComplexRandomString(32);
        String passwords = MD5Utils.encrypByMd5(salt+this.getPassword());
        return User.builder()
                .username(this.phone)
                .phone(this.phone)
                .salt(salt)
                .password(passwords)
                .state(1)
                .createtime(new Date())
                .build();
    }
}
